package com.kaifamiao.anonymous;

import java.lang.reflect.Constructor;
import java.util.Arrays;

public class AnonymousClassTest4 {
	
	public static void main(String[] args) {
		
		/*
		// 在 JDK 1.8 之前，匿名类中访问外部类的局部变量时，外部类的局部变量必须是final修饰的
		final String name = "飞机" ;
		Flyable f = new Flyable() {
			// 匿名类也有自己的构造方法，但是在源代码中不能显式书写构造方法
			@Override
			public void fly() {
				System.out.println( name + "飞起来了");
			}
		};
		*/
		
		Human f = new Human( "李白" ) {
			@Override
			public void eat(String food) {
				System.out.println( this.name + "吃" + food );
			}
		};
		
		Class<?> c = f.getClass();
		System.out.println( c.getSuperclass() );
		System.out.println( Arrays.toString( c.getInterfaces() ) );
		
		Constructor<?>[] cons =  c.getDeclaredConstructors();
		for( int i = 0 ; i < cons.length ; i++ ) {
			System.out.println( cons[ i ] );
		}
		
	}

}
